package com.huawang.mdesign.model.service.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.huawang.core.definition.mof.instances.MetaClassInstance;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @auther lairenmao
 * @date 2025/7/15
 * 模型校验分组、校验规则返回对象
 */
@Data
public class ValidationModelInstanceVo {
    @JsonIgnore
    @Schema(title = "模型")
    private MetaClassInstance instance;

    @Schema(title = "模型id")
    private String instanceId;

    @Schema(title = "模型名称")
    private String instanceName;

    @Schema(title = "模型图标")
    private String icon;

    @Schema(title = "全限定名称")
    private String qualifiedName;

    @Schema(title = "父级id")
    private String ownerId;

    @Schema(title = "构造型")
    private List<String> appliedStereotypes = new ArrayList<>();

    @Schema(title = "元类")
    private String metaClass;

    @Schema(title = "是否内置")
    private Boolean isInteractive = Boolean.FALSE;

    @Schema(title = "子级节点，当前模型是校验分组的时候存在")
    private List<ValidationModelInstanceVo> children = new ArrayList<>();

    @Schema(title = "是否是元素导入")
    private Boolean isElementImport = Boolean.FALSE;

    @Schema(title = "元素导入关系id")
    private List<String> elementImportRelationShipIds = new ArrayList<>();
}
